← Back shared

본문 바로가기

블로그

카테고리 이동

논문 리뷰

[NLP 논문 리뷰 #2] 그래프를 표로 변환하기, DEPLOT: One-shot visual language, plot-to-table translation

도전하는아이

2023. 5. 8. 12:00

금융 분야는 숫자 데이터가 많다보니, 가독성을 위해 그래프와 차트를 많이 그리는 편이다.

글쓴이의 친절한 배려이지만, 딥러닝 자연어처리 NLP 분야에서는 이것이 하나의 장애물이 되곤 한다.

자연어 데이터 를 전처리하고 학습하는 과정 NLP 에서 그래프와 차트는 input 데이터로서 인식하지 못하기 때문에 제외될 수 밖에 없기 때문이다. 즉, 완벽한 학습 혹은 분석이 될 수 없다.

그래서 그래프와 차트를 이미지처럼 인식하여 표 형태의 자연어로 풀어내는 모델 에 대한 논문이 새롭게 나왔다.

'Plot-to-Table Translation' 이라고들 하며, 모델 이름은 ' DEPLOT '이다.[DePlot: One-shot visual language reasoning by plot-to-table translation

Visual language such as charts and plots is ubiquitous in the human world. Comprehending plots and charts requires strong reasoning skills. Prior state-of-the-art (SOTA) models require at least tens of thousands of training examples and their reasoning capabilities are still much limited, especially...

arxiv.org

](https://arxiv.org/abs/2212.10505)

00: 핵심 아이디어

1. 그래프와 같은 시각적 언어에 대한 멀티모달 추론 은 '이미지에서 정보 추출', '추출한 정보 정리', '정보를 바탕으로 추론 수행'으로 이어지는 복잡한 작업 이다. 그래서 기존의 SOTA(State of the art) 모델인 'MATCHA'는 ChartQA에서 38.2%의 정확도밖에 거두지 못했다.

2. 이를 개선하기 위해 DEPLOT 모델을 만들었으며, (1) Plot-to-Text Translation (2) 텍스트에 대한 추론(Chain of Thought, Self-Consistency 사용) 2가지 과정을 거쳐 그래프 혹은 차트 데이터에 대한 QA를 가능하게 한다.

3. 또한 Plot-to-Table 의 정확도를 객관적으로 평가하기 위해, 일반화된 Plot-to-Table 을 위한 평가 메트릭 을 개발하였다.

DePlot: Plot to Table 수행, LLM: Table로부터의 추론 수행

1. 기존 Plot-to-Table 평가 메트릭 에서의 문제와 개선사항

- Table에서의 행과 열의 순서와 위치에 따라 평가의 결과가 불변해야 함

- 어느 정도의 숫자, 텍스트 값의 오류는 허용하되 페널티는 줄 것

- 정밀도와 리콜 기반의 손실을 반영할 것 → 최종적으로 f1 계산까지 가능하게 할 것

2. Table을 숫자 집합이 아닌, 행 r, 열 c header에서 단일 값 v으로의 순서없는 Mapping 모음으로 보자.

- N × M Table에 값 v를 매핑한 결과

3. 값 v가 단어일 경우와 숫자일 경우를 나눈다음 다시 병합하여 평가

- 단어(문자열): NLD 거리를 활용하여 평가

p i 와 t j 간의 거리 표기: NL τ (p r ||p c, t r ||t c) (||: 행열 간 연결을 의미)

※ NLD(Normalized Levenshtein Distance) 거리: 두 문장 혹은 단어가 얼마나 다른 지를 평가하는 값

- 숫자: 상대적 거리를 활용하여 평가

D Θ (p, t) = min(1, ||p-t||/||t||)

▶ 이 단어와 숫자를 합치면!

D τ,Θ (p, t) = (1- NL τ (p r ||p c, t r ||t c))(1-D Θ (p v, t v)) ← 0과 1 사이의 값으로 0은 가장 다르다라는 것을 의미함

▶ 이 값을 활용하여 RMS 값을 계산할 수 있고, 평가 지표로서 학습에 사용할 수 있다!

02: Plot-to-Table 훈련과정과 LLM 프롬프트

Plot-to-Table 과정은 생각보다 별 설명이 없어서 당황했다.

1. SOTA visual language model MATCHA의 구조와 weights를 가져오면서 시작

2. 해당 모델에 대해 그래프와 테이블 데이터를 집어넣으면서 finetuning 진행

3. 특히 테이블은 '|' 로 열을 구분하고 '\n'으로 행을 구분하도록, 그리고 왼쪽에서 오른쪽으로 생성하도록 훈련함

마지막으로 LLM 프롬프트 는 ' Chain of Thought '와 ' Self-Consistency '를 사용하도록 한다.

Chain of Thought 로 논리성을 가지도록 하며, Self-Consistency 로 greedy하게 하나의 답변에 의존하는 것을 피한다.

위의 표는 학습 및 평가 결과이다.

결과만 놓고 보면 DEPLOT 별거 없네~ 라는 소리가 나올 수 있다.

다만 DEPLOT 은 'One-shot' 즉 하나의 예제만 툭 던져준 반면 에, MATCHA는 Fully-supervised된 결과 라는 점을 생각하면 어느 정도 선방했다라고 볼 수 있다. 특히 사람이 작성한 chart에 대해서 강한 편으로 보인다.

이들은 ' One-shot' 컨텍스트 예제로 평가하다보니 확인된 모델의 두가지 한계를 지적했다.

① PlotQA에서 LLM 이 수치 추론 부분에서 한계점 이 있었다.

② Chart나 Plot 모두 개체 색상, 모양, 방향 등 시각적 속성을 묻는 질문 에 대해서는 '표' 데이터로는 답할 수 없다. 그래서 글자 형태로 명시되지 않는 시각적 정보 또한 추가 디코딩되어야할 필요가 있다.

다만... 해당 code에서 제공하는 image를 그대로 썼음에도 불구하고

글이나 숫자를 제대로 인식하지 못하는 부분이 있었다.

위의 그림에서는 Germany 옆에 nan값이라던지, Netherlands 철자를 제대로 인식하지 못한다던지...

아직은 조금 더 발전이 필요해보이는 모델이었다.

DEPLOT 코드는 아래의 깃허브 허깅페이스 페이지에서 제공하고 있다.

참조하여 사용하면 될 것 같다.[google-research/deplot at master · google-research/google-research

Google Research. Contribute to google-research/google-research development by creating an account on GitHub.

github.com

](https://github.com/google-research/google-research/tree/master/deplot)[google/deplot · Hugging Face

Edit model card Model card for DePlot Table of Contents TL;DR Using the model Contribution Citation TL;DR The abstract of the paper states that: Visual language such as charts and plots is ubiquitous in the human world. Comprehending plots and charts requires strong reasoning skills. Prior state-of-...

huggingface.co

](https://huggingface.co/google/deplot)